<template>
  <div>
      <avue-crud ref="crud"
      :page.sync="page"
      :data="tableData"
      :table-loading="tableLoading"
      :option="tableOption"
       @on-load="getList"
       @search-change="searchChange"
       @refresh-change="refreshChange"
       @size-change="sizeChange"
       @current-change="currentChange"
       @row-update="handleUpdate"
       @row-save="handleSave"
       @row-del="rowDel">
      </avue-crud>
  </div>
</template>

<script>
	import {
		tableOption
	} from '../../../const/user'
	
export default {
    name: 'UserManage',
	data() {
	  return{
			//用户crud
			searchForm: {},
			tableData: [],
			page: {
				total: 0, // 总页数
				currentPage: 1, // 当前页数
				pageSize: 20 // 每页显示多少条
			},
			tableLoading: false,
			tableOption: tableOption,
	  }
	},
	mounted(){
	},
	methods: {
		//用户相关
		getList(page, params) {
			this.tableLoading = true
			this.axios({
				method: "get",
				url: 'http://localhost:8080/message/user/page',
				params: Object.assign(
						{
							current:this.page.currentPage,
							size: this.page.pageSize,
						},
						this.searchForm
					)
					
			}).then(response => {
				console.log(response.data.data)
				this.tableData = response.data.data.records
				this.page.total = response.data.data.total
				this.tableLoading = false
			}).catch(() => {
			    this.tableLoading=false
			})
			
		},
		rowDel: function(row, index) {
			this.$confirm('是否确认删除内容', '提示', {
			    confirmButtonText: '确定',
			    cancelButtonText: '取消',
			    type: 'warning'
			}).then(function () {
			    var url = 'http://localhost:8080/message/user/'+row.id
				// console.log(url);
				return axios.delete(url)
			}).then(data => {
			    this.$message.success('删除成功')
			    this.getList(this.page)
			})
		},
		handleUpdate: function(row, index, done, loading) {
			var url = 'http://localhost:8080/message/user'
			let data = row
			console.log(data)
			this.axios.put(url,data).then(data => {
			    this.$message.success('修改成功')
			    done()
			    this.getList(this.page)
			}).catch(() => {
			    loading();
			});
		},
		handleSave: function(row, done, loading) {
			// console.log(row)
			var url = 'http://localhost:8080/message/user'
			this.axios.post(url,row).then(data => {
			    this.$message.success('添加成功')
			    done()
			    this.getList(this.page)
			}).catch(() => {
			    loading();
			});
		},
		sizeChange(pageSize) {
			this.page.pageSize = pageSize
		},
		currentChange(current) {
			this.page.currentPage = current
		},
		searchChange(form, done) {
			this.searchForm = form
			this.page.currentPage = 1
			this.getList(this.page, form)
			done()
		},
		refreshChange() {
			this.getList(this.page)
		}
	}
}
</script>

<style>

</style>